Automated user interface adjustment

ABSTRACT

An event associated with a viewable area of an encapsulated component that represents at least a portion of content associated with a user interface component is detected. A determination is made that the event will result in at least a portion of the viewable area of the encapsulated component being outside of a viewable area of the user interface component. The content associated with the user interface component is adjusted automatically to display at least the portion of the viewable area of the encapsulated component within the viewable area of the user interface component.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to systems and methods for updating a userinterface. More particularly, the present invention relates to automateduser interface adjustment.

2. Related Art

User interfaces of computing devices take many forms. Text-based userinterfaces provide text for presentation to a user of the computingdevice. Graphical user interfaces (GUIs) provide graphic capabilitiesfor presentation of graphics in addition to text to the user of thecomputing device.

GUIs include graphical components, such as dialog boxes, text boxes, anddrop-down lists. These graphical components include content that may beviewed. Graphical controls, such as selectable buttons, radio buttons,text entry fields, and drop-down list control buttons are used tomanually navigate the content of the graphical components.

BRIEF SUMMARY OF THE INVENTION

The subject matter described herein provides automated user interfaceadjustment of content associated with a user interface containercomponent and an encapsulated component in response to an action orevent associated with viewable content of the encapsulated component.The automated adjustments may be performed in response to polled orevent-based interactions with the encapsulated component. Usermanipulations of a control element associated with the encapsulatedcomponent are evaluated to determine whether they result in contentassociated with the encapsulated component extending beyond a viewablearea of the container component. Content that extends beyond theviewable area of the container component triggers automated adjustmentof the content associated with both the encapsulated component and thecontainer component. Control elements associated with the containercomponent and the encapsulated component are also adjusted to representadjustment of the content associated with both the container componentand the encapsulated component.

A method includes detecting an event associated with a viewable area ofan encapsulated component that represents at least a portion of contentassociated with a user interface component, determining that the eventwill result in at least a portion of the viewable area of theencapsulated component being outside of a viewable area of the userinterface component, and adjusting the content associated with the userinterface component automatically to display the at least the portion ofthe viewable area of the encapsulated component within the viewable areaof the user interface component.

A system includes a user interface component adapted to associate anencapsulated component as at least a portion of content associated withthe user interface component, and a processor adapted to detect an eventassociated with a viewable area of the encapsulated component, determinethat the event will result in at least a portion of the viewable area ofthe encapsulated component being outside of a viewable area of the userinterface component, and adjust the content associated with the userinterface component automatically to display the at least the portion ofthe viewable area of the encapsulated component within the viewable areaof the user interface component.

An alternative system includes an input device adapted to generate inputevents in response to actuation by a user, a user interface componentadapted to associate an encapsulated component as at least a portion ofcontent associated with the user interface component, display thecontent, and provide coordinates associated the encapsulated componentin response to the input events, and a processor adapted to receive thecoordinates provided by the user interface component, detect an eventassociated with a viewable area of the encapsulated component generatedby the input device, determine a length of a dimension of the viewablearea of the encapsulated component relative to an origin of theencapsulated component based upon the coordinates, compare the length ofthe dimension with a distance from the origin of the encapsulatedcomponent to a boundary of the viewable area of the user interfacecomponent, determine that the length of the dimension is larger than thedistance to the boundary of the viewable area of the user interfacecomponent, determine that the event will result in at least a portion ofthe viewable area of the encapsulated component being outside of aviewable area of the user interface component, and adjust the contentassociated with the user interface component automatically to displaythe at least the portion of the viewable area of the encapsulatedcomponent within the viewable area of the user interface component.

A computer program product includes a computer useable medium includinga computer readable program. The computer readable program when executedon a computer causes the computer to detect an event associated with aviewable area of the encapsulated component, determine that the eventwill result in at least a portion of the viewable area of theencapsulated component being outside of a viewable area of the userinterface component, and adjust the content associated with the userinterface component automatically to display the at least the portion ofthe viewable area of the encapsulated component within the viewable areaof the user interface component.

Those skilled in the art will appreciate the scope of the presentinvention and realize additional aspects thereof after reading thefollowing detailed description of the preferred embodiments inassociation with the accompanying drawing figures.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

The accompanying drawing figures incorporated in and forming a part ofthis specification illustrate several aspects of the invention, andtogether with the description serve to explain the principles of theinvention.

FIG. 1 illustrates an example of an implementation of a block diagram ofa system for automated adjustment, such as scrolling, of a userinterface container component in response to an action associated withan encapsulated component according to an embodiment of the presentsubject matter;

FIG. 2 illustrates an example of an implementation of a user interfacein an initial state where content that is available for viewing islarger in a vertical direction than an area available for presentationof the available content and prior to any user interaction according toan embodiment of the present subject matter;

FIG. 3 illustrates an example of an implementation of a user interfacejust prior to automated scrolling of content within a viewable area,where the user has moved a scroll element of an encapsulated element toan edge of the viewable area according to an embodiment of the presentsubject matter;

FIG. 4 illustrates an example of an implementation of a user interfacejust after a user has attempted to move a scroll element of anencapsulated element beyond a lower boundary of a viewable areaaccording to an embodiment of the present subject matter;

FIG. 5 illustrates an example of an implementation of a user interfaceafter a user has attempted to continue moving a scroll element of anencapsulated element to a bottom of a scroll bar and automated scrollinghas completed according to an embodiment of the present subject matter;

FIG. 6 illustrates an example of an implementation of a user interfacein an initial state where content that is available for viewing islarger in a vertical direction than an area available for presentationof the available content and prior to any user interaction according toan embodiment of the present subject matter;

FIG. 7 illustrates an example of an implementation of a user interfaceafter the user has activated a drop-down control to expand a drop-downlist and automated scrolling of content has completed after expansion ofthe drop-down list according to an embodiment of the present subjectmatter;

FIG. 8 illustrates an example of an implementation of a process forautomated adjustment of user interface components in response to changesin viewable area of encapsulated user interface components according toan embodiment of the present subject matter;

FIG. 9 illustrates an example of an implementation of a process forautomated adjustment of container user interface components in responseto status changes associated with viewable area of encapsulated userinterface components by polling the encapsulated user interfacecomponents for status changes according to an embodiment of the presentsubject matter; and

FIG. 10 illustrates an example of an implementation of a process forautomated adjustment of container user interface components in responseto events triggered by encapsulated user interface componentsrepresenting status changes associated with viewable area of theencapsulated user interface components according to an embodiment of thepresent subject matter.

DETAILED DESCRIPTION OF THE INVENTION

The embodiments set forth below represent the necessary information toenable those skilled in the art to practice the invention and illustratethe best mode of practicing the invention. Upon reading the followingdescription in light of the accompanying drawing figures, those skilledin the art will understand the concepts of the invention and willrecognize applications of these concepts not particularly addressedherein. It should be understood that these concepts and applicationsfall within the scope of the disclosure and the accompanying claims.

The subject matter described herein provides automated user interfaceadjustment of content associated with a user interface containercomponent and an encapsulated component in response to an action orevent associated with viewable content of the encapsulated component.The automated adjustments may be performed in response to polled orevent-based interactions with the encapsulated component. Usermanipulations of a control element associated with the encapsulatedcomponent are evaluated to determine whether they result in contentassociated with the encapsulated component extending beyond a viewablearea of the container component. Content that extends beyond theviewable area of the container component triggers automated adjustmentof the content associated with both the encapsulated component and thecontainer component. Control elements associated with the containercomponent and the encapsulated component are also adjusted to representadjustment of the content associated with both the container componentand the encapsulated component.

FIG. 1 illustrates an example of an implementation of a block diagram ofa system 100 for automated adjustment, such as scrolling, of a userinterface container component in response to an action associated withan encapsulated component. For purposes of the present description, acontainer component of a user interface includes elements, such as abrowser, but also includes any user-interface component that contains orencapsulates other viewable content (e.g., encapsulated components). Assuch, any component or element that includes other content, elements, orcomponents may be considered a container of the other content, elements,or components. Furthermore, encapsulated elements or components may beconsidered to include any element or component contained within anotherelement or component. The system 100 may be a computing device, such asa personal computer, or any other device useable for interaction with auser. For example, the system 100 may be a cellular telephone, personaldigital assistance (PDA), email device, music recording or playbackdevice, or any other device with a user interface.

A central processing unit (CPU) 102 provides computer instructionexecution, computation, and other capabilities within the system 100. Amemory 104 includes a code storage area 106, a code execution area 108,and data area 110. The memory 104 may include any combination ofvolatile and non-volatile memory suitable for the code storage area 106,the code execution area 108, and the data area 110, as appropriate, andmay include other memory segments not illustrated within the presentexample. The code execution area 108 includes execution space for anoperating system (not shown).

A user interface 112 provides information to a user of the system 100 inthe form of text and/or graphics. The user interface 112 may include agraphical user interface (GUI). As will be described in more detailbelow, container components and encapsulated components are presented tothe user via the user interface 112.

An input device 114 provides the user of the system 100 with inputcapabilities. The input device 114 allows the user to interact with thesystem 100 in association with information presented on the userinterface 112. The input device 114 may include a keypad, a mouse, apen, a joystick, or any other user input device capable of allowing theuser to interact with the system 100. As described in more detail below,coordinates of encapsulated components, such as its origin, may beforwarded to or polled and processed by the CPU 102 in response toevents associated input events generated by the input device 114.

The CPU 102, the memory 104, the user interface 112, and the inputdevice 114 are interconnected via an interconnection 116. Theinterconnection 116 may include a system bus, a network, or any otherinterconnection capable of providing the respective components withsuitable interconnection for the respective purpose.

Furthermore, components within the system 100 may be co-located ordistributed within a network without departure from the scope of thepresent subject matter. For example, the components within the system100 may be located within a stand-alone device, such as a personalcomputer (e.g., desktop or laptop) or handheld device (e.g., cellulartelephone, personal digital assistant (PDA), email device, musicrecording or playback device, etc.). For a distributed arrangement, theuser interface 112 and the input device 114 may be located at a terminalof a fuel pump, point of sale device, or kiosk, while the CPU 102 andmemory 104 are located at a local or remote server. Many other possiblearrangements for components of the system 100 are possible and all arewithin the scope of the present subject matter.

FIGS. 2 through 5 illustrate an example of an implementation of a timeprogression for the user interface 112 based upon user manipulation ofthe input device 114 in response to information presented within theuser interface 112. The time progression illustrated within FIGS. 2through 5 is provided to facilitate understanding of the automatedadjusting of content of the present subject matter. Detailed examples ofprocesses for automatically adjusting content associated with containercomponents and encapsulated components in response to events indicativeof content associated with an encapsulated component extending beyond aboundary of a container component are presented below beginning withFIG. 8.

FIG. 2 illustrates an example of an implementation of the user interface112 in an initial state where content that is available for viewing islarger in the vertical direction than an area available for presentationof the available content and prior to any user interaction. Though notdepicted within the present example, it is understood that the scope ofthe present subject matter also applies to content that is larger thanan area available for presentation of available content in anydirection. For example, content that is larger in a horizontaldirection, a diagonal direction, or in any other direction are allconsidered within the scope of the present subject matter. Furthermore,adjustment of content, such as by scrolling, in any direction is alsoconsidered within the scope of the present subject matter.

Within the example of FIG. 2, a viewable area 200 provides an area forpresentation of information to the user in the form of text and/orgraphics. Content 202 represents displayable text and/or graphics thatare available for display and presentation within the viewable area 200.For purposes of the present example, the content 202 is larger than theviewable area 200. Accordingly, a portion of the content 202 isrepresented by a dashed outline for areas outside of the viewable area200. A scroll bar 204 allows the user to move a scrolling element 206 tomove the content 202 vertically within the viewable area 200. As such,the scroll bar 204 and the scrolling element 206 represent controlelements of the viewable area 200. The scroll bar 204 and the scrollingelement 206 also represent visual content position indicators for theviewable area 200 that allow the user to visually determine the relativeposition of the content displayed within the viewable area 200 relativeto the total content available for viewing within the viewable area 200.

The content 202 includes an element 208 located partially within theviewable area 200 and located partially outside of the viewable area 200as represented by the dashed outline of a portion of the element 208.For purposes of the present description, it is assumed that there havebeen no viewable events generated by the element 208 within FIG. 1.Accordingly, the element 208 is represented within FIG. 1 prior to anyautomated adjustment by the system 100. Additionally, the viewable area200 may be considered a container element within which the content 202is located and the element 208 may be considered an encapsulatedelement. Furthermore, as described above, encapsulated elements mayinclude any element or component contained within another element orcomponent.

The element 208 also includes a scroll bar 210 and a scrolling element212. The scroll bar 210 allows the user to move a scrolling element 212to move the content (not shown) of the element 208 vertically within theelement 208. As such, the scroll bar 210 and the scrolling element 212represent control elements of the element 208. The scroll bar 210 andthe scrolling element 212 also represent visual content positionindicators for the element 208 that allow the user to visually determinethe relative position of the content displayed within the element 208relative to the total content available for presentation within theelement 208.

For ease of illustration purposes, dimensions of content within theelement 208 are not depicted using a dashed-line representation ofcontent available for presentation within the element 208, but outsideof the area of the element 208. However, it is understood that theelement 208 may include content that is larger than the available areaof the element 208 within the content 202 and that the content of theelement 208 is viewable by movement of the scrolling element 212 withinthe scroll bar 210.

FIG. 3 illustrates an example of an implementation of the user interface112 just prior to automated scrolling of the content 202 within theviewable area 200, where the user has moved the scroll element 212 ofthe encapsulated element 208 to the edge of the viewable area 200. Asillustrated within FIG. 3, the user has moved the scroll element 212 ofthe element 208 downward using the input device 114 toward the contentof the element 208 that is not viewable within the viewable area 200.Because the scroll element 212 has not yet been moved beyond a lowerboundary of the viewable area 200, the user interface 112 has not yetautomatically adjusted (e.g., scrolled) the content 202 or the element208.

FIG. 4 illustrates an example of an implementation of the user interface112 just after the user has attempted to move the scroll element 212 ofthe encapsulated element 208 beyond the lower boundary of the viewablearea 200. As will be described in more detail below beginning with FIG.8, the user attempting to move the scroll element 212 beyond a boundaryof the viewable area 200 generates an event, such as a viewable event,associated with the element 208 within the system 100. The CPU 102 thenprocesses this event to automatically adjust components and contentwithin the user interface 112 without the user having to manuallyactivate the scroll element 206.

As can be seen from FIG. 4, the scroll element 212 is still positionedat the lower boundary of the viewable area 200. However, several otherelements of the user interface 112 have moved as a result of the eventtriggered by the user attempting to move the scroll element 212 beyondthe lower boundary of the viewable area 200.

The content 202 has been moved upward within the viewable area 200. Thismovement of the content 202 is illustrated within FIG. 4 by adashed-line representation of a top portion of the content 202 above theviewable area 200 and by illustrating that less of the portion of thecontent 202 is located below the viewable area 200. Additionally, thescroll element 206 within the scroll bar 204 has automatically moveddown to proportionally represent the area of the content 202 that ispresently presented within the viewable area 200. Furthermore, while thescroll element 212 is still positioned at the lower boundary of theviewable area 200, it is illustrated as having moved within the scrollbar 210 to proportionally represent the area of the content (notillustrated) of the encapsulated element 208 that is presented withinthe encapsulated element 208.

Accordingly, the system 100 automatically scrolled several components ofthe user interface 112, including the content of the container elementitself, in response to the user attempting to move a single encapsulatedcontrol element of an encapsulated element beyond a boundary of thecontainer element. In the present example, the system 100 automaticallymoved the content 202 within the viewable area 200 in addition toautomatically moving the content (not illustrated) within theencapsulated element 208 in response to the event triggered by the userattempting to move the scroll element 212 beyond a boundary of theviewable area 200.

FIG. 5 illustrates an example of an implementation of the user interface112 after the user has attempted to continue moving the scroll element212 of the encapsulated element 208 to the bottom of the scroll bar 210and automated scrolling has completed. The user continuing to attempt tomove the scroll element 212 of the encapsulated element 208 to thebottom of the scroll bar 210 triggered one or more additional viewableevents. The CPU 102 processed the one or more events and automaticallyadjusted the content 202 and the content (not illustrated) of theencapsulated element 208 without the user having to activate the scrollelement 206.

As can be seen from FIG. 5, the scroll element 212 is still positionedat the lower boundary of the viewable area 200. However, several otherelements of the user interface 112 have automatically moved further as aresult of the user continuing to attempt to move the scroll element 212beyond the lower boundary of the viewable area 200 until it reached thebottom of the scroll bar 210.

The content 202 has been moved further upward within the viewable area200. This movement of the content 202 is illustrated within FIG. 5 by alarger dashed-line representation of a top portion of the content 202above the viewable area 200 and by a smaller portion of the content 202located below the viewable area 200. Additionally, the scroll element206 within the scroll bar 204 has automatically moved down toproportionally represent the area of the content 202 that is currentlypresented within the viewable area 200. Furthermore, while the scrollelement 212 is still positioned at the lower boundary of the viewablearea 200, it is illustrated as having moved to the bottom of the scrollbar 210 to proportionally represent the area of the content (notillustrated) of the encapsulated element 208 that is presented withinthe encapsulated element 208.

Accordingly, the system 100 automatically continued to scroll severalcomponents of the user interface 112, including the content of thecontainer element itself, in response to the user continuing to attemptto move a single encapsulated control element of an encapsulated elementbeyond a boundary of the container element. Additional viewable eventswere generated and processed in response to the user continuing tomanipulate the scroll element 212. These events were processed by theCPU 102 and content was automatically adjusted without the user havingto manually activate the scroll element 206. In the present example, thesystem 100 automatically continued to move the content 202 within theviewable area 200 in addition to automatically moving the content (notillustrated) within the encapsulated element 208 in response to the usercontinuing to attempt to move the scroll element 212 beyond a boundaryof the viewable area 200.

As described above, the present subject matter is not limited toautomated adjustment, such as scrolling, of user interface components inthe vertical direction. Automated horizontal scrolling, automateddiagonal scrolling, and automated scrolling in any other direction areall considered within the scope of the present subject matter.

FIGS. 6 and 7 illustrate another example of an implementation of a timeprogression for the user interface 112 based upon user manipulation ofcontrols within the user interface 112. The time progression illustratedwithin FIGS. 6 and 7 is provided to facilitate understanding of theautomated adjustment of content, such as by scrolling, of the presentsubject matter. Detailed examples of processes for automaticallyadjusting content associated with container components and encapsulatedcomponents in response to events indicative of content associated withan encapsulated component extending beyond a boundary of a containercomponent are presented below beginning with FIG. 8.

FIG. 6 illustrates an example of an implementation of the user interface112 in an initial state where content 600 that is available for viewingis larger in the vertical direction than an area available forpresentation of the available content and prior to any user interaction.Though not depicted within the present example, it is understood thatthe scope of the present subject matter applies to content that islarger than an area available for presentation of available content inany direction. For example, content that is larger in a horizontaldirection, a diagonal direction, or in any other direction are allconsidered within the scope of the present subject matter. Furthermore,adjustment of content, such as by scrolling, in any direction is alsoconsidered within the scope of the present subject matter.

Within the example of FIG. 6, the viewable area 200, the scroll bar 204,and the scrolling element 206 are illustrated and operate as describedabove in association with FIGS. 2 through 5. The content 600 includes adrop-down list 602 located in a non-expanded form within the viewablearea 200. For purposes of the present description, the viewable area 200may be considered a container element within which the content 600includes encapsulated elements, such as the drop-down list 602. Thecontent 600 is represented by a dashed outline for any portion of thecontent 600 that is outside of the viewable area 200. For purposes ofthe present description, the viewable area 200 may be considered acontainer element within which the content 600 includes encapsulatedelements, such as the drop-down list 602.

The drop-down list 602 also includes a drop-down control 604 thatenables a user to activate the list expansion capabilities of thedrop-down list 602 to expand the drop-down list to show list elementsencapsulated within the drop-down list 602. As such, the drop-downcontrol 604 represents a control element of the drop-down list 602. Forpurposes of the present description, it is understood that the drop-downlist 602 includes content that, when expanded, is larger than theremaining viewable space within the viewable area 200, such that whenactivated by a user, the drop-down list 602 will extend beyond the lowerboundary of the viewable area 200. As with the example of FIGS. 2through 5, when the user activates the drop-down control 604 to expandthe drop-down list 602, the system 100 automatically scrolls the content600 as illustrated within FIG. 7 below.

FIG. 7 illustrates an example of an implementation of the user interface112 after the user has activated the drop-down control 604 to expand thedrop-down list 602 and automated scrolling of the content 600 hascompleted after expansion of the drop-down list 602. As will bedescribed in more detail below beginning with FIG. 8, the useractivating the drop-down control 604 results in content associated withthe drop-down list 602 to be beyond a boundary of the viewable area 200and generates an event, such as a viewable event, associated with thedrop-down list 602 within the system 100. The CPU 102 then processesthis event to automatically adjust components and content within theuser interface 112 without the user having to manually activate thescroll element 206.

As can be seen from FIG. 7, the drop-down list 602 includes a listitem_1 680, a list item_2 610, and a list item_3 612. It should be notedthat the list item_3 612 is positioned at the lower boundary of theviewable area 200. Additionally, several other elements of the userinterface 112 have automatically moved further as a result of the useractivating the drop-down control 604 to expand the drop-down list 602.The content 600 has been moved further upward within the viewable area200. This movement of the content 600 is illustrated within FIG. 7 by alarger dashed-line representation of a top portion of the content 600above the viewable area 200 and by a smaller portion of the content 600located below the viewable area 200. Further, the scroll element 206within the scroll bar 204 has automatically moved down to proportionallyrepresent the area of the content 600 that is currently presented withinthe viewable area 200.

Accordingly, the system 100 automatically scrolled several components ofthe user interface 112, including the content of the container elementitself, in response to the user activating a single encapsulateddrop-down control element of an encapsulated element such that expansionof the drop-down element would have caused content associated with theelement to be displayed beyond a boundary of the container element.Additional viewable events were generated and processed in response tothe user manipulation of the drop-down control 604. These events wereprocessed by the CPU 102 and content was automatically adjusted withoutthe user having to manually activate the scroll element 206. In thepresent example, the system 100 automatically moved the content 600within the viewable area 200 in response to the user activating thedrop-down control 604.

As described above, the present subject matter is not limited toautomated adjustment (e.g., scrolling) of user interface components inthe vertical direction. Automated horizontal scrolling, automateddiagonal scrolling, and automated scrolling in any other direction areall considered within the scope of the present subject matter.

While the above description within FIGS. 2 through 7 has illustratedthat automated adjustment (e.g., scrolling) is completed when thedynamic content associated with an encapsulated component has beendisplayed, this should not be considered limiting as this representationof completion of the automated scrolling is for ease of illustrationpurposes only. Once an automated adjustment opportunity has beendetected, automated adjustment may be continued beyond the boundary ofany dynamic content associated with an encapsulated component by anysuitable measure to further enhance the user's experience of using thesystem 100.

FIG. 8 illustrates an example of an implementation of a process 800 forautomated adjustment of user interface components in response to changesin viewable area of encapsulated user interface components. At block802, the process 800 detects an event associated with a viewable area ofan encapsulated component that represents at least a portion of contentassociated with a user interface component. At block 804, the process800 determines that the event will result in at least a portion of theviewable area of the encapsulated component being outside of a viewablearea of the user interface component. At block 806, the process 800adjusts the content associated with the user interface componentautomatically to display the portion of the viewable area of theencapsulated component within the viewable area of the user interfacecomponent.

FIG. 9 illustrates an example of an implementation of a process 900 forautomated adjustment of container user interface components in responseto status changes associated with viewable area of encapsulated userinterface components by polling the encapsulated user interfacecomponents for status changes. At block 902, the process 900 polls anencapsulated user interface component, such as the element 208 withinthe viewable area 200 of the user interface 112, for activity or anevent associated with a viewable status of the encapsulated userinterface component. At decision point 904, the process 900 determineswhether there has been a change in viewable status for the encapsulateduser interface component.

If the process 900 determines that there has been no change in theviewable status of the encapsulated user interface component, theprocess 900 waits for a time delay at block 906. The process 900 theniteratively polls the encapsulated user interface component for activityassociated with the viewable status of the encapsulated user interfacecomponent after the time delay at block 902 as described above. When theprocess 900 determines at decision point 904 that change in viewablestatus for the encapsulated user interface component has occurred, theprocess 900 determines at least one dimension of the viewable area ofthe encapsulated user interface component at block 908. This dimensionmay be horizontal, vertical, diagonal, or any other dimension associatedwith the encapsulated user interface component. Additionally, thisdimension may be represented as a length of an aspect of theencapsulated user interface component. This dimension may also berepresented as a distance from an origin of the encapsulated userinterface component calculated via user interface coordinates of theencapsulated user interface component, or via any other approachresulting in a value representative of the dimension.

At block 910, the process 900 determines at least one extent of theencapsulated user interface component. The extent may be associated withone or more dimensions of the encapsulated user interface component,with the one or more dimensions determined as described above. Further,the extent may be relative to an origin within the content of thecontainer component, such as the user interface 112, at which theencapsulated user interface component is located. Accordingly, theextent identifies at least one of a point and a distance and bearingrelative to the origin of the encapsulated user interface component thatrepresents a location of a boundary of the encapsulated user interfacecomponent relative to origin within the content of the containercomponent.

At block 912, the process 900 compares the extent with boundaries of thecontainer component. At decision point 914, the process 900 determineswhether a boundary of the container component has been exceeded by anextent associated with the viewable area of the encapsulated userinterface component. For purposes of the present description, anyapproach to determining whether a boundary of the container componenthas been exceeded by an extent associated with the viewable area of theencapsulated user interface component may be used. For example, adetermination may be made that a length of or to the extent is largerthan a distance to the boundary of the container component.

If the process 900 determines that no boundary of the containercomponent has been exceeded by an extent associated with the viewablearea of the encapsulated user interface component, the process 900returns to block 902 to poll the encapsulated user interface componentfor activity associated with the viewable status of the encapsulateduser interface component as described above.

If the process 900 determines that a boundary of the container componenthas been exceeded by an extent associated with the viewable area of theencapsulated user interface component, the process 900 adjusts thecontent of the container component to make encapsulated contentassociated with the encapsulated user interface component viewable atblock 916. At block 918, the process 900 resets the viewable status ofthe encapsulated user interface component and returns to block 902 topoll the encapsulated user interface component for activity associatedwith the viewable status of the encapsulated user interface component asdescribed above. Accordingly, the process 900 provides automatedadjustment of container user interface components in response to statuschanges associated with viewable area of the encapsulated user interfacecomponents by polling the encapsulated user interface components forstatus changes.

FIG. 10 illustrates an example of an implementation of a process 1000for automated adjustment of container user interface components inresponse to events triggered by encapsulated user interface componentsrepresenting status changes associated with viewable area of theencapsulated user interface components. At decision point 1002, theprocess 1000 waits for an event associated with viewable status of anencapsulated user interface component.

When the process 1000 determines that there has been an event associatedwith viewable status for an encapsulated user interface component, theprocess 1000 determines at least one dimension of the viewable area ofthe encapsulated user interface component at block 1004. This dimensionmay be horizontal, vertical, diagonal, or any other dimension associatedwith the encapsulated user interface component. As described above inassociation with FIG. 9, this dimension may be represented as a lengthof an aspect of the encapsulated user interface component. Thisdimension may also be represented as a distance from an origin of theencapsulated user interface component calculated via user interfacecoordinates of the encapsulated user interface component, or via anyother approach resulting in a value representative of the dimension.

At block 1006, the process 1000 determines at least one extent of theencapsulated user interface component. The extent may be associated withone or more dimensions of the encapsulated user interface component,with the one or more dimensions determined as described above. Further,the extent may be relative to an origin within the content of thecontainer component, such as the user interface 112, at which theencapsulated user interface component is located. Accordingly, theextent identifies at least one of a point and a distance and bearingrelative to the origin of the encapsulated user interface component thatrepresents a location of a boundary of the encapsulated user interfacecomponent relative to origin within the content of the containercomponent.

At block 1008, the process 1000 compares the extent with boundaries ofthe container component. At decision point 1010, the process 1000determines whether a boundary of the container component has beenexceeded by an extent associated with the viewable area of theencapsulated user interface component. For purposes of the presentdescription, any approach to determining whether a boundary of thecontainer component has been exceeded by an extent associated with theviewable area of the encapsulated user interface component may be used.For example, a determination may be made that a length of or to theextent is larger than a distance to the boundary of the containercomponent.

If the process 1000 determines that no boundary of the containercomponent has been exceeded by an extent associated with the viewablearea of the encapsulated user interface component, the process 1000returns to decision point 1002 to await an event associated withviewable status of an encapsulated user interface component as describedabove.

If the process 1000 determines that a boundary of the containercomponent has been exceeded by an extent associated with the viewablearea of the encapsulated user interface component, the process 1000adjusts the content of the container component to make encapsulatedcontent associated with the encapsulated user interface componentviewable at block 1012. At block 1014, the process 1000 resets theviewable status of the encapsulated user interface component and returnsto decision point 1002 to await an event associated with viewable statusof an encapsulated user interface component as described above.Accordingly, the process 1000 provides automated adjustment of containeruser interface components in response to events triggered byencapsulated user interface components representing status changesassociated with viewable area of the encapsulated user interfacecomponents.

The subject matter that has been described provides automated userinterface adjustment of a user interface container component in responseto an action or event associated with viewable content of anencapsulated component. The user interface adjustment may be performedin response to polled or event-based interactions with the encapsulatedcomponent. Control elements associated with both the container componentand the encapsulated component are adjusted to represent adjustment ofthe content associated with both the container component and theencapsulated component.

The invention can take the form of an entirely hardware embodiment, anentirely software embodiment or an embodiment containing both hardwareand software elements. In a preferred embodiment, the invention isimplemented in software, which includes but is not limited to firmware,resident software, microcode, etc.

Furthermore, the invention can take the form of a computer programproduct accessible from a computer-usable or computer-readable mediumproviding program code for use by or in connection with a computer orany instruction execution system. For the purposes of this description,a computer-usable or computer readable medium can be any apparatus thatcan contain, store, communicate, propagate, or transport the program foruse by or in connection with the instruction execution system,apparatus, or device.

The medium can be an electronic, magnetic, optical, electromagnetic,infrared, or semiconductor system (or apparatus or device) or apropagation medium. Examples of a computer-readable medium include asemiconductor or solid state memory, magnetic tape, a removable computerdiskette, a random access memory (RAM), a read-only memory (ROM), arigid magnetic disk and an optical disk. Current examples of opticaldisks include compact disk—read only memory (CD-ROM), compactdisk—read/write (CD-R/W) and DVD.

A data processing system suitable for storing and/or executing programcode will include at least one processor coupled directly or indirectlyto memory elements through a system bus. The memory elements can includelocal memory employed during actual execution of the program code, bulkstorage, and cache memories which provide temporary storage of at leastsome program code in order to reduce the number of times code must beretrieved from bulk storage during execution.

Input/output or I/O devices (including but not limited to keyboards,displays, pointing devices, etc.) can be coupled to the system eitherdirectly or through intervening I/O controllers.

Network adapters may also be coupled to the system to enable the dataprocessing system to become coupled to other data processing systems orremote printers or storage devices through intervening private or publicnetworks. Modems, cable modems and Ethernet cards are just a few of thecurrently available types of network adapters.

Those skilled in the art will recognize improvements and modificationsto the preferred embodiments of the present invention. All suchimprovements and modifications are considered within the scope of theconcepts disclosed herein and the claims that follow.

What is claimed is:
 1. A method, comprising: displaying a graphical userinterface (GUI) container window comprising at least one containercontent control element that scrolls container content of the GUIcontainer window; displaying, as a portion of the container content ofthe GUI container window, an encapsulated GUI component comprising anencapsulated content control element; detecting an event associated withthe encapsulated content control element of the encapsulated GUIcomponent that changes a viewable area of the encapsulated GUIcomponent; determining that the event associated with the encapsulatedcontent control element of the encapsulated GUI component will result inat least a portion of the changed viewable area of the encapsulated GUIcomponent extending outside of at least one boundary of a viewable areaof the GUI container window; and adjusting both the container contentassociated with GUI container window and the encapsulated GUI componentautomatically, in response to determining that the at least the portionof the changed viewable area of the encapsulated GUI component wouldextend outside of the at least one boundary of the viewable area of theGUI container window, to display the at least the portion of the changedviewable area of the encapsulated GUI component within the at least oneboundary of the viewable area of the GUI container window, whereadjustment of the container content is controlled responsive to thedetected event associated with the encapsulated content control elementof the encapsulated GUI component.
 2. The method of claim 1, wheredetecting the event associated with the encapsulated content controlelement of the encapsulated GUI component that changes the viewable areaof the encapsulated GUI component comprises polling the encapsulated GUIcomponent to identify the event.
 3. The method of claim 1, wheredetecting the event associated with the encapsulated content controlelement of the encapsulated GUI component that changes the viewable areaof the encapsulated GUI component comprises receiving the event inresponse to the event being sent from the encapsulated GUI component. 4.The method of claim 1, where determining that the event associated withthe encapsulated content control element of the encapsulated GUIcomponent will result in at least the portion of the changed viewablearea of the encapsulated GUI component extending outside of the at leastone boundary of the viewable area of the GUI container window comprises:determining a length of a dimension of the viewable area of theencapsulated GUI component relative to an origin of the encapsulated GUIcomponent; comparing the length of the dimension with a distance fromthe origin of the encapsulated GUI component to the at least oneboundary of the viewable area of the GUI container window; anddetermining that the length of the dimension is larger than the distancefrom the origin of the encapsulated GUI component to the at least oneboundary of the viewable area of the GUI container window.
 5. The methodof claim 1, where adjusting both the container content associated withthe GUI container window and the encapsulated GUI componentautomatically, in response to determining that the at least the portionof the changed viewable area of the encapsulated GUI component wouldextend outside of the at least one boundary of the viewable area of theGUI container window, comprises scrolling the container contentassociated with the GUI container window to display the at least theportion of the changed viewable area of the encapsulated GUI componentwithin the at least one boundary of the viewable area of the GUIcontainer window.
 6. The method of claim 5, where scrolling thecontainer content associated with the GUI container window comprisesscrolling the container content associated with the GUI container windowin at least one of a horizontal direction and a vertical direction. 7.The method of claim 1, further comprising adjusting the at least onecontainer content control element of the GUI container window withinwhich the encapsulated GUI component is displayed to represent that thecontainer content associated with the GUI container window has beenadjusted in response to the detected event associated with theencapsulated content control element of the encapsulated GUI component.8. A system, comprising: a display; and a processor programmed to:display a graphical user interface (GUI) container window comprising atleast one container content control element that scrolls containercontent of the GUI container window on the display; display, as aportion of the container content of the GUI container window, anencapsulated GUI component comprising an encapsulated content controlelement; detect an event associated with the encapsulated contentcontrol element of the encapsulated GUI component that changes aviewable area of the encapsulated GUI component; determine that theevent associated with the encapsulated content control element of theencapsulated GUI component will result in at least a portion of thechanged viewable area of the encapsulated GUI component extendingoutside of at least one boundary of a viewable area of the GUI containerwindow; and adjust both the container content associated with the GUIcontainer window and the encapsulated GUI component automatically, inresponse to determining that the at least the portion of the changedviewable area of the encapsulated GUI component would extend outside ofthe at least one boundary of the viewable area of the GUI containerwindow, to display the at least the portion of the changed viewable areaof the encapsulated GUI component within the at least one boundary ofthe viewable area of the GUI container window, where adjustment of thecontainer content is controlled responsive to the detected eventassociated with the encapsulated content control element of theencapsulated GUI component.
 9. The system of claim 8, where, in beingprogrammed to detect the event associated with the encapsulated contentcontrol element of the encapsulated GUI component that changes theviewable area of the encapsulated GUI component, the processor isprogrammed to poll the encapsulated GUI component to identify the event.10. The system of claim 8, where, in being programmed to detect theevent associated with the encapsulated content control element of theencapsulated GUI component that changes the viewable area of theencapsulated GUI component, the processor is programmed to receive theevent in response to the event being sent from the encapsulated GUIcomponent.
 11. The system of claim 8, where, in being programmed todetermine that the event associated with the encapsulated contentcontrol element of the encapsulated GUI component will result in atleast the portion of the changed viewable area of the encapsulated GUIcomponent extending outside of the at least one boundary of the viewablearea of the GUI container window, the processor is programmed to:determine a length of a dimension of the viewable area of theencapsulated GUI component relative to an origin of the encapsulated GUIcomponent; compare the length of the dimension with a distance from theorigin of the encapsulated GUI component to the at least one boundary ofthe viewable area of the GUI container window; and determine that thelength of the dimension is larger than the distance from the origin ofthe encapsulated GUI component to the at least one boundary of theviewable area of the GUI container window.
 12. The system of claim 8,where, in being programmed to adjust both the container contentassociated with the GUI container window and the encapsulated GUIcomponent automatically, in response to determining that the at leastthe portion of the changed viewable area of the encapsulated GUIcomponent would extend outside of the at least one boundary of theviewable area of the GUI container window, the processor is programmedto scroll the container content associated with the GUI container windowto display the at least the portion of the changed viewable area of theencapsulated GUI component within the at least one boundary of theviewable area of the GUI container window.
 13. The system of claim 12,where, in being programmed to scroll the container content associatedwith the GUI container window, the processor is programmed to scroll thecontainer content associated with the GUI container window in at leastone of a horizontal direction and a vertical direction.
 14. The systemof claim 8, where the processor is further programmed to adjust the atleast one container content control element of the GUI container windowwithin which the encapsulated GUI component is displayed to representthat the container content associated with the GUI container window hasbeen adjusted in response to the detected event associated with theencapsulated content control element of the encapsulated GUI component.15. A system, comprising: an input device adapted to generate inputevents in response to actuation by a user; a display; and a userinterface component configured to provide coordinates associated withdisplayed components in response to the input events; and a processorprogrammed to: display a graphical user interface (GUI) container windowcomprising at least one container content control element that scrollscontainer content of the GUI container window on the display; display,as a portion of the container content of the GUI container window, anencapsulated GUI component comprising an encapsulated content controlelement; detect an event generated by the input device associated withthe encapsulated content control element of the encapsulated GUIcomponent that changes a viewable area of the encapsulated GUIcomponent; determine a length of a dimension of the viewable area of theencapsulated GUI component relative to an origin of the encapsulated GUIcomponent based upon the coordinates provided by the user interfacecomponent; compare the length of the dimension with a distance from theorigin of the encapsulated GUI component to at least one boundary of aviewable area of the GUI container window; determine that the length ofthe dimension is larger than the distance from the origin of theencapsulated GUI component to the at least one boundary of the viewablearea of the GUI container window; determine that the event associatedwith the encapsulated content control element of the encapsulated GUIcomponent will result in at least a portion of the changed viewable areaof the encapsulated GUI component extending outside of the at least oneboundary of the viewable area of the GUI container window; and adjustboth the container content associated with the GUI container window andthe encapsulated GUI component automatically, in response to determiningthat the at least the portion of the changed viewable area of theencapsulated GUI component would extend outside of the at least oneboundary of the viewable area of the GUI container window, to displaythe at least the portion of the changed viewable area of theencapsulated GUI component within the at least one boundary of theviewable area of the GUI container window, where adjustment of thecontainer content is controlled responsive to the detected eventassociated with the encapsulated content control element of theencapsulated GUI component.
 16. A computer program product comprising anon-transitory computer useable storage medium including a computerreadable program, where the computer readable program when executed on acomputer causes the computer to: display a graphical user interface(GUI) container window comprising at least one container content controlelement that scrolls container content of the GUI container window;display, as a portion of the container content of the GUI containerwindow, an encapsulated GUI component comprising an encapsulated contentcontrol element; detect an event associated with the encapsulatedcontent control element of the encapsulated GUI component that changes aviewable area of the encapsulated GUI component; determine that theevent associated with the encapsulated content control element of theencapsulated GUI component will result in at least a portion of thechanged viewable area of the encapsulated GUI component extendingoutside of at least one boundary of a viewable area of the GUI containerwindow; and adjust both the container content associated with the GUIcontainer window and the encapsulated GUI component automatically, inresponse to determining that the at least the portion of the changedviewable area of the encapsulated GUI component would extend outside ofthe at least one boundary of the viewable area of the GUI containerwindow, to display the at least the portion of the changed viewable areaof the encapsulated GUI component within the at least one boundary ofthe viewable area of the GUI container window, where adjustment of thecontainer content is controlled responsive to the detected eventassociated with the encapsulated content control element of theencapsulated GUI component.
 17. The computer program product of claim16, where, in causing the computer to detect the event associated withthe encapsulated content control element of the encapsulated GUIcomponent that changes the viewable area of the encapsulated GUIcomponent, the computer readable program when executed on the computercauses the computer to poll the encapsulated GUI component to identifythe event.
 18. The computer program product of claim 16, where, incausing the computer to detect the event associated with theencapsulated content control element of the encapsulated GUI componentthat changes the viewable area of the encapsulated GUI component, thecomputer readable program when executed on the computer causes thecomputer to receive the event in response to the event being sent fromthe encapsulated GUI component.
 19. The computer program product ofclaim 16, where, in causing the computer to determine that the eventassociated with the encapsulated content control element of theencapsulated GUI component will result in the at least the portion ofthe changed viewable area of the encapsulated GUI component extendingoutside of the at least one boundary of the viewable area of the GUIcontainer window, the computer readable program when executed on thecomputer causes the computer to: determine a length of a dimension ofthe viewable area of the encapsulated GUI component relative to anorigin of the encapsulated GUI component; compare the length of thedimension with a distance from the origin of the encapsulated GUIcomponent to the at least one boundary of the viewable area of the GUIcontainer window; and determine that the length of the dimension islarger than the distance from the origin of the encapsulated GUIcomponent to the at least one boundary of the viewable area of the GUIcontainer window.
 20. The computer program product of claim 16, where,in causing the computer to adjust both the container content associatedwith the GUI container window and the encapsulated GUI componentautomatically, in response to determining that the at least the portionof the changed viewable area of the encapsulated GUI component wouldextend outside of the at least one boundary of the viewable area of theGUI container window, the computer readable program when executed on thecomputer causes the computer to scroll the container content associatedwith the GUI container window to display the at least the portion of thechanged viewable area of the encapsulated GUI component within the atleast one boundary of the viewable area of the GUI container window. 21.The computer program product of claim 16, where the computer readableprogram when executed on the computer further causes the computer toadjust the at least one container content control element of the GUIcontainer window within which the encapsulated GUI component isdisplayed to represent that the container content associated with theGUI container window has been adjusted in response to the detected eventassociated with the encapsulated content control element of theencapsulated GUI component.